package es.udc.acs.banco.sesion;


import java.io.Serializable;
import es.udc.acs.utils.CodigosFAP;

public class TraficoDetenido extends SesionState implements Serializable {

	private static final long serialVersionUID = 6207556673949798267L;

	@Override
	public String procesarRDatos() {

		// rechazamos todo el tráfico
		return CodigosFAP.CE_OTRAS_CAUSAS;
	}

	@Override
	public String procesarRControl(String tipo) {

		return CodigosFAP.CE_OTRAS_CAUSAS;
	}

	@Override
	public String obtenerEstado() {
		
		return "detenido";
	}

	@Override
	public boolean detenerTrafico(Sesion sesion) {
		return false;
	}

	@Override
	public boolean reanudarTrafico(Sesion sesion) {
			
		return sesion.establecerEstado(new RecibirMensajes());			

	}

	@Override
	public boolean aperturaSesion(Sesion sesion) {
		return false;
	}

	@Override
	public boolean cierreSesion(Sesion sesion) {
		try {
			
			sesion.establecerEstado(new  SesionCerrada());			
			return true;
			
		} catch (Exception e) {
			e.printStackTrace();
		}		
		
		return false;
	}

	@Override
	public boolean enRecuperacion(Sesion sesion) {
		return false;
	}

	@Override
	public boolean finRecuperacion(Sesion sesion) {
		return false;
	}

	@Override
	public boolean puedoDetenerTrafico() {
		return false;
	}

	@Override
	public boolean puedoReanudarTrafico() {
		return true;
	}

	@Override
	public boolean puedoAperturaSesion() {
		return false;
	}

	@Override
	public boolean puedoCierreSesion() {
		return true;
	}

	@Override
	public boolean puedoEnRecuperacion() {
		return false;
	}

	@Override
	public boolean puedoFinRecuperacion() {
		return false;
	}

}
